package com.ledi.guns.modular.ledipay.controller.req.bill;

import java.util.Date;
import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

import lombok.Data;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;

import com.ledi.guns.modular.ledipay.controller.anotation.ListNotHasNull;
import com.ledi.guns.modular.ledipay.controller.req.clazz.ClassAdd.Add;
import com.ledi.guns.modular.ledipay.controller.req.clazz.ClassAdd.Update;

/**
 * 文件名称： com.ledi.guns.modular.ledipay.controller.req.bill.Face2FaceBill.java<br/>
 * 初始作者： 钟小平<br/>
 * 创建日期： 2018年8月22日<br/>
 * 功能说明： 创建账单<br/>
 * =================================================<br/>
 * 修改记录：<br/>
 * 修改作者 日期 修改内容<br/>
 * ================================================<br/>
 * Copyright (乐迪教育科技有限公司-幼儿事业部) 2017-2018.All rights reserved.<br/>
 */
@Data
public class Face2FaceBill {

	@NotBlank(groups = { Add.class }, message = "请传入账单名称！")
	@Length(groups = { Add.class }, max = 50, min = 1, message = "账单名称输入1-50个之间！")
	private String billName;

	/**
	 * 账单id
	 */
	@NotNull(groups = Update.class, message = "账单ID不能为空！")
	private Long billId;

	/**
	 * 截止时间
	 */
	@NotNull(message = "请传入截止时间")
	private Date billEndTime;

	/**
	 * 发送班级
	 */
	@NotEmpty(groups = { Update.class, Add.class }, message = "请选择具体的班级")
	@ListNotHasNull(groups = { Update.class, Add.class }, message = "List中不能含有null元素")
	@Valid
	private List<Long> classIds;

	/**
	 * 学校收费项id
	 */
	@NotEmpty(groups = { Add.class }, message = "请选择具体的收费项")
	@ListNotHasNull(groups = { Add.class }, message = "List中不能含有null元素")
	@Valid
	private List<Long> schoolPayItemIds;
}
